#include "headfile.h"
#include "TFTLCD.h"

TFT_eSPI tft = TFT_eSPI();

extern float instant_flow[8];  // 瞬时流量
extern long int total_flow[8];  // 累计流量
extern int16_t instan_flag;
extern int16_t total_flag;

String instant_unit[12] = {"L/S", "L/M", "L/H", "M3/S", "M3/M", "M3/H", "T/S", "T/M", "T/H", "GPS", "GPM","GPH"};
String total_unit[4] = {"L", "M3", "T", "USG"};

void show_data(uint8_t num)
{
    uint8_t dev1=0,dev2=0;
    switch (num)
    {
        case 0: dev1=1;dev2=2;break;
        case 1: dev1=3;dev2=4;break;
        case 2: dev1=5;dev2=6;break;
        case 3: dev1=7;dev2=8;break;
    }
    tft.setCursor(10, 5, 1); 
    tft.print("DEVICE:");
    tft.drawNumber(dev1, 80, 5, 1); 
    tft.setCursor(10, 15, 1);
    tft.print("INSTANT:");
    tft.drawFloat(instant_flow[dev1], 2, 80, 15, 1);
    tft.setCursor(10, 25, 1); 
    tft.print("UNIT:");
    tft.setCursor(80, 25, 1); 
    tft.print(instant_unit[instan_flag]);
    tft.setCursor(10, 35, 1); 
    tft.print("TOTAL:");
    tft.drawNumber(total_flow[dev1], 80, 35, 1); 
    tft.setCursor(10, 45, 1);  
    tft.print("UNIT:");
    tft.setCursor(80, 45, 1);  
    tft.print(total_unit[total_flag]);

    tft.setCursor(10, 65, 1);  // 横坐标 纵坐标 字号
    tft.print("DEVICE:");
    tft.drawNumber(dev2, 80, 65, 1); 
    tft.setCursor(10, 75, 1);  // 横坐标 纵坐标 字号
    tft.print("INSTANT:");
    tft.drawFloat(instant_flow[dev2], 2, 80, 75, 1);
    tft.setCursor(10, 85, 1);  // 横坐标 纵坐标 字号
    tft.print("UNIT:");
    tft.setCursor(80, 85, 1);  // 横坐标 纵坐标 字号
    tft.print(instant_unit[instan_flag]);
    tft.setCursor(10, 95, 1);  // 横坐标 纵坐标 字号
    tft.print("TOTAL:");
    tft.drawNumber(total_flow[dev2], 80, 95, 1); 
    tft.setCursor(10, 105, 1);  // 横坐标 纵坐标 字号
    tft.print("UNIT:");
    tft.setCursor(80, 105, 1);  // 横坐标 纵坐标 字号
    tft.print(total_unit[total_flag]);
}

void read_button()
{
    static bool dog=true;
    static int dev_show_now=0;
    uint8_t status_19;
    uint8_t status_21;
    status_19 = digitalRead(19);
    status_21 = digitalRead(21);
    if(status_19==0)
        dev_show_now++;
    else if(status_21==0)
        dev_show_now--;
    dev_show_now = dev_show_now>3 ? 0 : dev_show_now;
    dev_show_now = dev_show_now<0 ? 3 : dev_show_now;
    tft.fillScreen(TFT_BLACK);  // 清屏
    show_data((uint8_t)dev_show_now);
    digitalWrite(5, dog);
    dog = !dog;
}
